package com.qf.team2.netdisc.admin.dao;

import com.qf.team2.netdisc.common.pojo.entity.Document;
import com.qf.team2.netdisc.common.pojo.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 管理员数据接口
 *
 * @author Simon_Wong
 * @date 2021/05/21
 * @since 2021/5/20 19:56
 */
@SuppressWarnings("AlibabaLowerCamelCaseVariableNaming")
public interface AdminMapper {

    /**
     * 根据用户名查找管理员
     *
     * @param username 用户名
     * @return {@link User}
     */
    User selectAdminByUsername(String username);

    /**
     * 获取所有用户
     *
     * @return {@link List<User>}
     */
    List<User> selectAllUser();

    /**
     * 根据用户id获取该用户的所有文件
     *
     * @param userId 用户id
     * @return {@link List<Document>}
     */
    List<Document> selectAllDocumentOfUser(Integer userId);

    /**
     * 设置用户为VIP
     *
     * @param userId 用户id
     * @return int
     */
    int setVIP(Integer userId);

    /**
     * 设置文件为已删除
     *
     * @param documentId 文件id
     * @return int
     */
    int setDocumentDeleted(Integer documentId);

    /**
     * 设置用户为普通用户
     *
     * @param userId 用户id
     * @return int
     */
    int setCommon(Integer userId);

    /**
     * 设置文件为未删除
     *
     * @param documentId 文件id
     * @return int
     */
    int setDocumentUndeleted(Integer documentId);

    /**
     * 设置用户为已删除
     *
     * @param userId 文件id
     * @return int
     */
    int setUserDeleted(Integer userId);

    /**
     * 设置用户为未删除
     *
     * @param userId 文件id
     * @return int
     */
    int setUserUndeleted(Integer userId);
}
